Bose-Chaudhuri-Hocquenghem (BCH) codes includes Reed-Solomon (RS) code. A conventional decoding scheme for a RS code usually has the following steps: calculating a syndrome Sx for the RS code to be decoded; calculating the root of the error position polynomial of the syndrome Sx; and performing Chien search.
For a RS(12,9) code for example, where 9 is the number of data symbols in the received symbol stream to be decoded, and n is the total number of code symbols in the received symbol stream to be decoded, the decoding needs to determine whether the received symbol stream (also called codeword) can be corrected by determining whether a new matrix composed of the syndrome Sx is a singular matrix. At the same time, a decoder needs to calculate a polynomial root after the determination is completed, and then to calculate an error correction value. This conventional method is relatively easy to implement with software, but for hardware implementation, such as Application-specific integrated circuit (ASIC) implementation, the decoder will introduce more complex logic and state machines.
This conventional method has applicability, and can be used for decoding the BCH code. However, applying this conventional method to the shortened RS (12, 9) code not only makes the decoding algorithm more complicated, but also fails to determine and correct error for the RS (12, 9) code where each of the data symbol and the parity symbol (or also called parity check symbol or check symbol) has one error.